The present invention relates to digital data networks. More particularly, the present invention relates to apparatus and methods for efficiently forming a virtual circuit.
Asynchronous Transfer Mode (ATM) is an emerging technology in the fields of telecommunication and computer networking. ATM permits different types of digital information (e.g., computer data, voice, video, and the like) to intermix and transmit over the same physical medium (i.e., copper wires, fiber optics, wireless transmission medium, and the like). ATM works well with data networks wherein digital data from a plurality of communication devices such as video cameras, telephones, television sets, facsimile machines, computers, printers, and the like, may be exchanged. Communication between the above mentioned data networks requires a technique of bi-directionally transporting a stream of related ATM cells (referred to as a xe2x80x9ccallxe2x80x9d) between a variety of sources and receivers. One such arrangement is a single source sending to a single receiver known in the art as a point to point (or unicast) as exemplified by a person to person telephone connection. Another possible arrangement is from one source to multiple receivers known in the art as point to multipoint (or multicast). One such multipoint system is exemplified by a conventional video on demand (referred to as VoD) system where any number of end users (home consumers, for example) may communicate real time with a root server. The root server in turn commands a main server to transmit the requested selection to the requester end user.
To facilitate discussion, prior art FIG. 1A illustrates a digital network 100, including an ATM switch 102 and a plurality of communication devices 210, 220, 230, 310, 320, and 330. ATM switch 102 represents a digital switch suitably arranged to couple two or more of communication devices 210, 220, 230, 310, 320, and 330 in either a bi-directional or uni-directional mode. ATM switch 102 may also represent a data network such as a local area network (LAN), a wide area network (WAN), or the global data network popularly known as the Internet. Each of communication devices 210, 220, 230, 310, 320, and 330 is coupled to ATM switch 102 via associated ATM ports 210(p), 220(p), 230(p), 310(p), 320(p), and 330(p) Each ATM port may include a Segmentation and Reassembly layer (SAR) and a Service Access Point (SAP). The SAR provides a method of breaking up into cells arbitrarily sized packets associated with any of the plurality of communication devices 210, 220, 230, 310, 320, and 330 and reassembling them such that information from different communication devices may be readily intermixed and transmitted regardless of its original format. The SAP function is twofold, first, in an outgoing call to a destination port, a destination SAP specifies the ATM address of the destination port; secondly, when preparing to respond to an incoming call, a local (or receiver) SAP specifies the ATM address of the receiving port.
A switch matrix 260 couples selected ones of the incoming ports to selected ones of the destination ports. In our example, port 210(p) may be couple to any of ports 220(p), 230(p), 310(p), 320(p), and 330(p) by way of switch matrix 260. An interconnect bus (not shown) couples processors associated with each bi-directional port and switch matrix 260 and is used to transfer all transactions between the processors.
FIG. 1B is an illustration of an ATM cell 120 representative of a UNI (User-to-Network Interface) system. ATM cell 120 includes 53 octets of 8 bits each. The 53 octets are grouped into two fields, the cell header 122 and the payload or information field 130. The cell header 122 contains protocol control information including data fields VPI (Virtual Path Identifier) and VCI (Virtual Circuit Identifier) used to define a virtual circuit over which ATM data cells corresponding to a call are transported through ATM switch 102. Cell header 122 also contains other protocol control information such as Payload Type Indicator (PTI), Header Error Control (HEC), and Generic Flow Control (GFC), and Cell Loss Priority (CLP) each of which corresponds to a desired Quality of Service (QoS) associated with the virtual circuit defined by VPI, VCI. QoS parameters can be either specified explicitly by the user or implicitly associated with specific service requests. The payload 130 is an information field of 48 octets containing the data to be transported from the sender port to the receiver port over the aforementioned virtual circuit.
Referring to FIG. 1C, a conventional method of setting up virtual circuit capable of servicing a unicast transmission through microprocessor based ATM switch system 100 will be discussed. For sake of this discussion only, assume a call initiator (not shown) wishes to use a telephone 201 to communicate with a receiver (also not shown) who uses a computer 331 to access an internet provider (IP) telephony service. In order to successfully couple telephone 201 to computer 331, ATM switch system 102 must set up a connection, referred to as a virtual circuit between incoming port 210(p) and receiving port 330(p). It should be noted that all connections are bi-directional and the distinction between sender and receiver is purely artificial and is for illustrative purposes only.
The call initiator begins the call setup procedure by using telephone 201 to dial the telephone number of the intended receiver. A SETUP signal 301a is then forward from an input processor 216 to a network processor 266 by way of a bus 270. Network processor 266, in turn, forwards SETUP signal 301a hop-by-hop to output processor 316 also by way of bus 270. SETUP signal 301a may include routing, QoS parameters, as well as additional parameters related to traffic control and shaping.
Upon receipt of SETUP signal 301a, network processor 266 echoes back a CALLPROCEEDiNG signal 301b to Input processor 216. CALLPROCEEDING signal 301b contains the virtual path indicator/virtual circuit indicator (VPI/VCI) associated with an arbitrated virtual circuit capable of transporting the ATM cells associated with the call. Upon receipt of SETUP signal 301a, output SAP processor 316 sends CALLPROCEEDING signal 310b to network processor 266. If output processor 316 accepts the call (based on a predetermined conflict resolution algorithm), it responds by sending a CONNECT signal 301c to input processor 216 by way of network processor 266 over bus 270. The last message of the call set up procedure is a CONNECT ACKNOWLEDGE signal 301d which is sent by input processor 216 to network processor 266 and output processor 316 over bus 270. The virtual circuit coupling telephone 201 to computer 331 is now available to transport the ATM data cells associated with the call.
At the conclusion of the call, either party may initiate a RELEASE signal that is forwarded to network processor 266 over bus 270. Network processor 266 echoes back a RELEASE COMPLETE signal to both input processor 216 and output processor 316 over bus 270. The RELEASE COMPLETE signal results in the virtual circuit associated with the just completed call to be invalidated.
A point to multipoint, or multicast, call is set up in a similar fashion but includes the additional steps related to adding and ultimately removing the additional receivers (or leafs). By way of example, a root will originate the connection that eventually terminates at two or more leaf nodes. The initial set up procedure is the same as discussed above, except that the original signaling request identifies the call as multicast (i.e., having two or more destination ports). The root, which in our discussion would be input processor 216, signals network processor 266 over bus 270 the address of the first leaf node. New destinations (referred to as multi-leaf nodes) will be added by way of an ADD PARTY signal also sent over bus 270.
For peak efficiency, it is generally desirable to have an ATM switch that can handle a very large number of simultaneous connections while switching ATM data cells with minimal delay and maximum data integrity. Unfortunately, the high bandwidth demanded by such a design may be limited by the available bus bandwidth associated with interconnection bus 270. It should be clear from FIG. 1C that, for example, every unicast virtual circuit set up and tear down requires at least twelve transactions (eight to set up the virtual circuit and four to tear it down after completion of the call). For a multicast call, this set up and tear down requirement is even more burdensome as each additional leaf requires at least four additional signals to set up and tear down the multicast virtual circuit. Unfortunately, the bus bandwidth associated with interconnect bus 270 provides an upper limit on the ultimate speed of ATM switch system 100 since a major source of delay is the communications delays imposed by the interconnection bus 270 that connects the various processors.
By way of example, attempting to solve the speed problem associated with a single bus by increasing the speed and/or the number of processors connected to the bus is also of limited value. As the number of connections increase, the amount of overhead data, related to for example error detection, on the bus degrades overall system performance. Unfortunately, as the processor speeds increase, the feasible number of processors that can be connected through a single bus decreases. An additional problem with using a single bus is that performance degrades as more devices are added to the bus. This means that the bandwidth of a bus available to a processor actually shrinks as more processors are added to the bus.
Thus, there is a need for techniques to reduce the number of transactions transmitted over the ATM switch system bus used to configure the associated virtual circuit in an ATM switch system.
A method of automatically forming a virtual circuit is disclosed. In one aspect of the invention, the virtual circuit may be used to transport an ATM data cell included in an associated communication session. The disclosed method includes the following operative steps. First, a configuration cell is created. Next the virtual circuit is formed by passing the configuration cell to a destination node by way of at least one connective node. The configuration cell updates and validates an associated connection table capable of defining a virtual link. The virtual link being part of the virtual circuit.
In another aspect of the invention, an automatic virtual circuit configurator is disclosed. The configurator includes a configuration request cell generator capable of generating a configuration request cell. The configuration request cell having a plurality of routing parameter pointers and a plurality of quality of service parameters used to define a virtual circuit. The configurator also includes a configuration cell translator coupled to the configuration request cell generator. The configuration request cell translator being disposed to receive the configuration request cell. The configuration cell translator being capable of reading selected ones of the plurality of routing parameters associated with selected routing parameter pointers included in a look up table. The look up table being associated with a memory device which includes one of a plurality of connection tables used to store appropriate routing and quality of service parameters. The configuration cell translator being capable of forming a configuration set up cell by combining the selected ones of the routing parameters and selected quality of service parameters used to define the virtual circuit. Furthermore, the configuration cell configurator includes a configuration cell handler disposed to receive the configuration set up cell coupled to the configuration cell translator. The configuration cell handler being capable of updating the first connection table with the selected routing and quality of service parameters associated with the virtual circuit and also capable of passing the configuration set up cell to a selected one of a plurality of connective nodes included within the ATM switch.